package com.rede.didiok.user.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rede.didiok.common.dto.user.TagDto;
import com.rede.didiok.user.entity.TagEntity;

/**
 * 标签表
 *
 * @author Rede
 * @email didiok@foxmail.com
 * @date 2023-08-07 18:21:17
 */
public interface TagService extends IService<TagEntity> {

    /**
     * 获取博客标签列表
     *
     * @param tagVO
     * @return
     */
    public IPage<TagEntity> getPageList(TagDto tagVO);

    /**
     * 获取全部博客标签列表
     *
     * @return
     */
    public List<TagEntity> getList();

    /**
     * 新增博客标签
     *
     * @param tagVO
     */
    public String addTag(TagDto tagVO);

    /**
     * 编辑博客标签
     *
     * @param tagVO
     */
    public String editTag(TagDto tagVO);

    /**
     * 批量删除博客标签
     *
     * @param tagVOList
     */
    public String deleteBatchTag(List<TagDto> tagVOList);

    /**
     * 置顶博客标签
     *
     * @param tagVO
     */
    public String stickTag(TagDto tagVO);

    /**
     * 通过点击量排序博客
     *
     * @return
     */
    public String tagSortByClickCount();

    /**
     * 通过引用量排序博客
     *
     * @return
     */
    public String tagSortByCite();

    /**
     * 获取热门标签
     *
     * @return
     */
    public List<TagEntity> getHotTag(Integer hotTagCount);

    /**
     * 获取一个排序最高的标签
     *
     * @return
     */
    public TagEntity getTopTag();
}

